package es.ats.codington.festival.domain;

/**
 * The Class Event.
 */
public class Event {
	
	
	// Encapsulated data fields for EVENT class
	/** The id. */
	private int id;
	
	/** The name. */
	private String name;
	
	/** The description. */
	private String description;
	
	/** The duration. */
	private int duration;
	
	/** The type event. */
	private String typeEvent;
	
	/** The capacity. */
	private int capacity;
	
	// Declaring an visitor variable. Place class is now composed in Event
	/** The id place. */
	private int idPlace;
	
	/** The building. */
	private Building building;
	
	
	
	
	// Constructs
	/**
	 *  Constructor for the childs of place -> Zoo, Park, TouristAtractions.
	 *
	 * @param id the id
	 * @param name the name
	 * @param description the description
	 * @param duration the duration
	 * @param typeEvent the type event
	 * @param capacity the capacity
	 * @param idPlace the id place
	 */
	public Event(int id, String name, String description,
			int duration, String typeEvent, int capacity, int idPlace) {
		this.id = id;
		this.name = name;
		this.description = description;
		this.duration = duration;
		this.typeEvent = typeEvent;
		this.capacity = capacity;
		this.idPlace = idPlace;
	}
	
	/**
	 *  Event constructor .
	 *
	 * @param id the id
	 * @param name the name
	 * @param description the description
	 * @param duration the duration
	 * @param typeEvent the type event
	 * @param capacity the capacity
	 * @param building the building
	 */
	public Event(int id, String name, String description,
			int duration, String typeEvent, int capacity, Building building) {
		super();
		this.id = id;
		this.name = name;
		this.description = description;
		this.duration = duration;
		this.typeEvent = typeEvent;
		this.capacity = capacity;
		this.building = building;
	}

	/**
	 * Instantiates a new event.
	 */
	public Event() {
		// TODO Auto-generated constructor stub
	}



	// GETTER and SETTER methods for Event class attributes
	/**
	 * Gets the id.
	 *
	 * @return the id
	 */
	public int getId() {
		return id;
	}

	/**
	 * Sets the id.
	 *
	 * @param id the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * Gets the name.
	 *
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * Sets the name.
	 *
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * Gets the description.
	 *
	 * @return the description
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * Sets the description.
	 *
	 * @param description the description to set
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * Gets the duration.
	 *
	 * @return the duration
	 */
	public int getDuration() {
		return duration;
	}

	/**
	 * Sets the duration.
	 *
	 * @param duration the duration to set
	 */
	public void setDuration(int duration) {
		this.duration = duration;
	}

	/**
	 * Gets the type event.
	 *
	 * @return the typeEvent
	 */
	public String getTypeEvent() {
		return typeEvent;
	}

	/**
	 * Sets the type event.
	 *
	 * @param typeEvent the typeEvent to set
	 */
	public void setTypeEvent(String typeEvent) {
		this.typeEvent = typeEvent;
	}

	/**
	 * Gets the capacity.
	 *
	 * @return the capacity
	 */
	public int getCapacity() {
		return capacity;
	}

	/**
	 * Sets the capacity.
	 *
	 * @param capacity the capacity to set
	 */
	public void setCapacity(int capacity) {
		this.capacity = capacity;
	}

	/**
	 * Gets the id place.
	 *
	 * @return the visitor
	 */
	public int getIdPlace() {
		return idPlace;
	}

	/**
	 * Sets the id place.
	 *
	 * @param idPlace the new id place
	 */
	public void setIdPlace(int idPlace) {
		this.idPlace = idPlace;
	}

	/**
	 * Gets the building.
	 *
	 * @return the building
	 */
	public Building getBuilding() {
		return building;
	}

	/**
	 * Sets the building.
	 *
	 * @param building the building to set
	 */
	public void setBuilding(Building building) {
		this.building = building;
	}
	
	

}